// 导入 express
const express = require('express')
// 创建路由对象
const router = express.Router()

// 导入图片的路由处理函数模块
const Picture_handler = require('../router_handler/pic')

// 导入解析 formdata 格式表单数据的包
const multer = require('multer')
// 导入处理路径的核心模块
const path = require('path')

const storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, path.join(__dirname, '../pictures'))
    },
    filename: function (req, file, cb) {
        cb(null, path.basename(file.originalname,path.extname(file.originalname)) + '_' + Date.now()  + path.extname(file.originalname))
    }
})
// 只允许上传JPEG或PNG图片
const fileFilter = (req, file, cb)=>{
    if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
        cb(null, true)
    } else {
        cb(new Error('只允许上传JPEG或PNG图片'), false)
    }
}
const upload = multer({ storage, fileFilter })
// 导入验证数据的中间件
const expressJoi = require('@escook/express-joi')
// 导入图片的验证模块
const { add_Picture_schema } = require('../schema/pic')

// 发布新图片的路由
// 注意：在当前的路由中，先后使用了两个中间件：
//       先使用 multer 解析表单数据
//       再使用 expressJoi 对解析的表单数据进行验证

router.post('/add', upload.single('filekey'), expressJoi(add_Picture_schema),Picture_handler.addPicture)

// 向外共享路由对象
module.exports = router